﻿// ***********************************************************************
// Apache 2.0 License
// Licensed under the Apache License, Version 2.0 (the "License"); you may
// not use this file except in compliance with the License. You may obtain
// a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 
//
// THIS CODE IS PROVIDED *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY 
// IMPLIED WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR 
// PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT.
//
// See the Apache Version 2.0 License for specific language governing
// permissions and limitations under the License.
// ***********************************************************************
// Assembly  : ContractMeow.Api.Dtos
// File      : IAutoCompleteResults.cs
//
// ***********************************************************************
using System;
using System.Collections.Generic;

namespace ContractMeow.Api.Dtos
{
	/// <summary>
	/// Interface IAutoCompleteResults
	/// </summary>
	public interface IAutoCompleteResults
	{
		/// <summary>
		/// Gets the prefix query.
		/// </summary>
		/// <value>The prefix query.</value>
		string PrefixQuery { get; }

		/// <summary>
		/// Gets the has groups.
		/// </summary>
		/// <value>The has groups.</value>
		Boolean HasGroups { get; }

		/// <summary>
		/// Gets the has open graphs.
		/// </summary>
		/// <value>The has open graphs.</value>
		Boolean HasOpenGraphs { get; }

		/// <summary>
		/// Gets the has topics.
		/// </summary>
		/// <value>The has topics.</value>
		Boolean HasTopics { get; }

		/// <summary>
		/// Gets the has users.
		/// </summary>
		/// <value>The has users.</value>
		Boolean HasUsers { get; }

		/// <summary>
		/// Gets the has all.
		/// </summary>
		/// <value>The has all.</value>
		Boolean HasAll { get; }

		/// <summary>
		/// Gets or sets the groups.
		/// </summary>
		/// <value>The groups.</value>
		IList<IAutoCompleteValueEx> Groups { get; set; }

		/// <summary>
		/// Gets or sets the open graphs.
		/// </summary>
		/// <value>The open graphs.</value>
		IList<IAutoCompleteValue> OpenGraphs { get; set; }

		/// <summary>
		/// Gets or sets the topics.
		/// </summary>
		/// <value>The topics.</value>
		IList<IAutoCompleteValue> Topics { get; set; }

		/// <summary>
		/// Gets or sets the users.
		/// </summary>
		/// <value>The users.</value>
		IList<IAutoCompleteValueEx> Users { get; set; }
	}
}